1. Field of the Invention
The present invention generally relates to extended language specification assigning methods, program developing methods and computer-readable storage media, and more particularly to an extended language specification assigning method for assigning an extended language specification with respect to an arbitrary object within a program, a program developing method that uses such an extended language specification assigning method, and a computer-readable storage medium which stores a program for causing a computer to execute such an extended language specification assigning method or program developing method. The present invention also relates to a program for causing a computer to execute such an extended language specification assigning method or program developing method.
2. Description of the Related Art
A compiler for a high-level language such as the C language is provided with an extended language specification for generating executing programs that are suited for a program executing environment of a processor such as a CPU, memory and the like. By assigning the extended language specification at a particular portion of a program, it is possible to reduce a memory capacity that is required to store the program.
However, due to the recent increase of the program scale, the portions of the program where the extended language specification is to be assigned are scattered within a large range, and it is difficult to confirm whether or not the extended language specification is assigned at effective and appropriate portions of the program when the entire program is taken into consideration.
Methods of assigning the extended language specification include a method of making a description of the extended language specification within a source program, a method of assigning the extended language specification in a particular source program as a command line option, and a method of assigning the extended language specification with respect to all source programs as a whole. But it is difficult to confirm the object with respect to which the extended language specification is actually assigned, and it is difficult to confirm whether or not the program is correctly compiled as specified by the extended language specification.
In addition, when the tradeoff between the portions within the program where the extended language specification has already been assigned and the portions where the extended language specification is to be assigned is taken into consideration, it is desirable to be able to constantly grasp all portions within all programs where a particular extended language specification is assigned.
FIG. 1 is a flow chart for explaining an example of a conventional program developing method. In FIG. 1, when the program development is started, a step S101 creates a new project. A step S102 makes various settings with respect to the program developing environment. A step S103 creates a source program using an extended language specification that is manually assigned by a user (program developer) in a step S121. A step S104 makes optional settings using the extended language specification that is manually assigned by the user in the step S121. A step S105 builds the program according to the assignment of the extended language specification, that is, compiles the program to create a target program.
A step S106 decides whether or not a building error is generated by the assignment made by the extended language specification. For example, the building error is generated by overlapping assignments of the extended language specification and the like. If the decision result in the step S106 is YES, a step S107 decides whether or not the cause of the building error is in the source program. If the decision result in the step S107 is YES, a step S108 corrects the source program, and the process returns to the step S102. On the other hand, if the decision result in the step S107 is NO, a step S109 decides whether or not the cause of the building error is in the option. If the decision result in the step S109 is YES, a step S110 changes the option, and the process returns to the step S102. If the decision result in the step S109 is NO, the process returns to the step S102.
If the decision result in the step S106 is NO, a step S111 executes the program using a simulator or an emulator. A step S112 measures an executing performance of the executed program. A step S113 decides whether or not the executing performance of the executed program is good, that is, a tolerable performance or better. If the decision result in the step S113 is NO, a step S114 decides whether or not the cause of the poor executing performance of the program is in the source program. If the decision result in the step S114 is YES, a step S115 corrects the source program, and the process returns to the step S102. On the other hand, if the decision result in the step S114 is NO, a step S116 decides whether or not the poor executing performance of the program is caused by the option. If the decision result in the step S116 is YES, a step S117 changes the option, and the process returns to the step S102. If the decision result in the step S116 is NO, the process returns to the step S102. The program development ends if the decision result in the step S113 is YES.
The source program, the option and the program developing environment mutually interact, and for this reason, the user must make manual adjustments while taking into consideration the mutual effects thereof. Accordingly, it is desirable that the user is a skilled person who is knowledgeable in the extended language specification and the like.
A Japanese Laid-Open Patent Application No. 6-110670 proposes a graphic user interface function customizing system that can acquire events by event acquisition commands in the extended language.
Conventionally, there exists no means that can constantly grasp all portions within all programs where a particular extended language specification is assigned. As a result, it is difficult to effectively utilize the extended language specification.
In addition, the methods of assigning the extended language specification include assigning the translation option to be applied to the entire project or the source program, assigning with respect to the source program by a #pragma preprocessing command or the like, and assigning with respect to a particular object by a local scope within the source program, a type modifier or the like. When such assignments overlap, there is a possibility that a grammatical error, a linkage error, an execution error and the like will occur.
Therefore, it is conventionally difficult to efficiently assign the extended language specification, and difficult to grasp the assigned state of the extended language specification. Consequently, it is difficult to suppress the overlapping assignments, and thus difficult to effectively utilize the extended language specification.